package com.echo.im.common.enums;

/**
 *
 * im-platform-engin 平台发送到 im-engin-engin 指令类型的枚举类
 * 该枚举类定义了IM平台中使用的指令类型及其描述
 *
 * @author: echo
 * @time: 2024-08-16
 */
public enum IMPlatformMsgType {

    // 用户下线指令，代码为1
    USER_LOGOUT(1, "用户下线");

    private final Integer code;

    /**
     * 构造函数，初始化指令类型的代码和描述
     *
     * @param code 指令类型的代码
     * @param desc 指令类型的描述
     */
    IMPlatformMsgType(Integer code, String desc) {
        this.code = code;
    }

    /**
     * 根据代码获取指令类型
     *
     * @param code 指令类型的代码
     * @return 对应的指令类型枚举对象，如果找不到则返回null
     */
    public static IMPlatformMsgType getByCode(Integer code) {
        for (IMPlatformMsgType cmdType : IMPlatformMsgType.values()) {
            if (cmdType.code.equals(code)) {
                return cmdType;
            }
        }
        return null;
    }

    /**
     * 获取指令类型的代码
     *
     * @return 指令类型的代码
     */
    public Integer code() {
        return code;
    }
}
